home *** CD-ROM | disk | FTP | other *** search
- 100 CLS
- 110 A$=STRING$(80,205)
- 120 PRINT A$
- 130 PRINT TAB(27)"CRITICAL PATH METHOD #1001"
- 140 COLOR 23
- 150 PRINT :PRINT :PRINT TAB(39)"IPCO"
- 160 COLOR 7
- 170 PRINT :PRINT :PRINT TAB(25)"PERSONAL COMPUTER OWNERS GROUP"
- 180 PRINT :PRINT :PRINT TAB(19)"p.o. box 10426, pittsburgh,pennsylvania 15234"
- 190 PRINT A$
- 200 PRINT :PRINT :PRINT :PRINT :PRINT
- 210 PRINT TAB(28)"PRESS ANY KEY TO CONTINUE"
- 220 A$=INKEY$:IF A$="" THEN 220
- 230 CLS
- 240 REM IPCO COPYRIGHT 1982
- 250 CLS
- 260 REM CRITICAL PATH METHOD
- 270 REM 'A' ARRAY = START AND END NODES FOR EACH ACTIVITY
- 280 REM 'S' ARRAY = EARLY START TIMES FOR EACH ACTIVITY
- 290 REM 'F' ARRAY = LATE FINISH TIMES FOR EACH ACTIVITY
- 300 REM 'E' ARRAY= DURATIONS AND COSTS OF ACTIVITIES
- 310 DIM A(100,2),S(100),F(100),E(100,2)
- 320 DEF FNR(Z1)=INT(Z1*1000+.05)/1000
- 330 PRINT " CRITICAL PATH METHOD"
- 340 PRINT
- 350 PRINT
- 360 PRINT
- 370 PRINT
- 380 PRINT
- 390 PRINT
- 400 PRINT "HOW MANY ACTIVITIES IN THIS NETWORK?"
- 410 INPUT N
- 420 FOR I=1 TO N
- 430 PRINT
- 440 PRINT "ENTER START, END NODES FOR ACTIVITY";I;
- 450 INPUT A(I,1),A(I,2)
- 460 IF A(I,1)<A(I,2) THEN 550
- 470 IF A(I,1)<N THEN 550
- 480 IF A(I,2)<N THEN 550
- 490 PRINT "START NODE MUST BE NUMBERED LOWER"
- 500 PRINT "THEN END NODE. AND END NODE MUST"
- 510 PRINT "BE LESS THEN THE NUMBER OF ACTIVITIES."
- 520 PRINT "********* TRY AGAIN *********"
- 530 PRINT
- 540 GOTO 430
- 550 PRINT "ENTER DURATION AND COST";
- 560 INPUT E(I,1),E(I,2)
- 570 S(I)=0
- 580 F(I)=0
- 590 NEXT I
- 600 REM LOOP TO FIND EARLY START TIMES FOR NETWORK
- 610 FOR I=1 TO N
- 620 IF S(A(I,2))>=S(A(I,1))+E(I,1) THEN 640
- 630 S(A(I,2))=S(A(I,1))+E(I,1)
- 640 NEXT I
- 650 F(A(N,2))=S(A(N,2))
- 660 REM LOOP TO CALCULATE LATE FINISH TIMES FOR NETWORK
- 670 FOR I=N TO 1 STEP -1
- 680 IF F(A(I,1))=0 THEN 710
- 690 IF F(A(I,1))>F(A(I,2))-E(I,1) THEN 710
- 700 GOTO 720
- 710 F(A(I,1))=F(A(I,2))-E(I,1)
- 720 NEXT I
- 730 C1=0
- 740 L=0
- 750 PRINT
- 760 CLS
- 770 REM CALCULATE SLACK TIMES IN S1
- 780 FOR I=1 TO N
- 790 PRINT " START END EARLY LATE "
- 800 PRINT " NODE NODE START FINISH "
- 810 PRINT " ***** ***** ***** *****"
- 820 PRINT TAB(6)A(I,1);TAB(16)A(I,2);TAB(26)S(A(I,1));TAB(36)F(A(I,2))
- 830 PRINT
- 840 PRINT "DURATION";TAB(15);E(I,1)
- 850 S1=F(A(I,2))-S(A(I,1))-E(I,1)
- 860 PRINT
- 870 IF S1>0 THEN 920
- 880 PRINT
- 890 PRINT "SLACK";TAB(15);"CRITICAL"
- 900 L=L+E(I,1)
- 910 GOTO 940
- 920 PRINT "SLACK";TAB(15);S1
- 930 GOTO 940
- 940 PRINT
- 950 PRINT "COST";TAB(15);E(I,2)
- 960 C1=C1+E(I,2)
- 970 PRINT
- 980 PRINT
- 990 PRINT "PRESS ANY KEY TO CONTINUE"
- 1000 A$=INKEY$: IF A$="" THEN 1000
- 1010 CLS
- 1020 NEXT I
- 1030 PRINT
- 1040 PRINT "CRITICAL PATH LENGTH= ";L
- 1050 PRINT
- 1060 PRINT "TOTAL COST OF NETWORK= ";C1
- 1070 PRINT
- 1080 PRINT
- 1090 PRINT
- 1100 PRINT "DO YOU WANT TO CHANGE ANY "
- 1110 PRINT "ACTIVITY DURATIONS? (Y/N)"
- 1120 INPUT A$
- 1130 IF A$="N" THEN 1310
- 1140 IF A$<>"Y" THEN 1080
- 1150 PRINT
- 1160 CLS
- 1170 PRINT "WHICH ACTIVITY?"
- 1180 INPUT I
- 1190 IF I<1 THEN 1150
- 1200 IF I>N THEN 1150
- 1210 PRINT"CURRENT DURATION IS";E(I,1);",COST=";E(I,2)
- 1220 PRINT "ENTER NEW DURATION AND COST";
- 1230 INPUT E(I,2),E(I,2)
- 1240 PRINT "****** RECALCULATION NETWORK ******"
- 1250 PRINT
- 1260 FOR I=1 TO N
- 1270 S(I)=0
- 1280 F(I)=0
- 1290 NEXT I
- 1300 GOTO 600
- 1310 END
- 1320 CLS A$=STRING$(80,205)
- "
- 1250 PRINT
- 1260 FOR I=1 TO N
- 1270 S(I)=0
- 1280 F(I)=0
- 1290 NEXT I
- 1300 GOTO 600
- 1